package terminal;

import java.awt.*;
import java.awt.event.*;

public class Terminal implements ActionListener {

    Frame f = new Frame("Terminal");

    public Terminal() {
        barMenu();
        addFrame();
        contruirFrame();
    }

    public void contruirFrame() {
        f.addWindowListener(new WindowAdapter() {

            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        f.setSize(618, 400);
        f.setLocation(200, 100);
        f.setVisible(true);
    }

    public void barMenu() {
        MenuBar mb = new MenuBar();
        Menu m1 = new Menu("Archivo");
        m1.addActionListener(this);
        m1.add("Abrir terminal             Mayús+ctrl+N");
        m1.add("Abrir solapa                Mayús+ctrl+T");
        m1.addSeparator();
        m1.add("Perfil nuevo...");
        m1.addSeparator();
        m1.add("Cerrar solapa            Mayús+ctrl+W");
        m1.add("Cerrar ventana          Mayús+ctrl+Q");
        mb.add(m1);
        Menu m2 = new Menu("Editar");
        m2.addActionListener(this);
        m2.add("Copiar");
        m2.add("Pegar");
        m2.addSeparator();
        m2.add("Seleccionar todo");
        m2.addSeparator();
        m2.add("Perfiles...");
        m2.add("Combinaciones de teclas...");
        m2.add("Preferencias del perfil");
        mb.add(m2);
        Menu m3 = new Menu("Ver");
        m3.add("Mostrar la barra de Menú");
        m3.add("Pantalla completa");
        m3.addSeparator();
        m3.add("Ampliar");
        m3.add("Reducir");
        m3.add("Tamaño normal");
        mb.add(m3);
        Menu m4 = new Menu("Buscar");
        m4.addActionListener(this);
        m4.add("Buscar");
        m4.add("Buscar siguiente");
        m4.add("Buscar anterior");
        mb.add(m4);
        Menu m5 = new Menu("Terminal");
        m5.addActionListener(this);
        m5.add("Cambiar perfil");
        m5.add("Establecer titulo...");
        m5.add("Establecer Codificacion de caracteres");
        m5.addSeparator();
        m5.add("Reiniciar");
        m5.add("Reiniciar y limpiar");
        m5.addSeparator();
        m5.add("1.80x24");
        m5.add("2.80x43");
        m5.add("3.132x24");
        m5.add("4.132x43");
        mb.add(m5);
        Menu m6 = new Menu("Ayuda");
        MenuItem mi18 = new MenuItem("Indice                                    F1");
        MenuItem mi19 = new MenuItem("Obtener ayuda en linea...");
        MenuItem mi20 = new MenuItem("Traducir esta aplicacion...");
        MenuItem mi21 = new MenuItem("Informar de un problema...");
        MenuItem mi22 = new MenuItem("Acerca de...");
        m6.add(mi18);
        m6.addSeparator();
        m6.add(mi19);
        m6.add(mi20);
        m6.add(mi21);
        m6.addSeparator();
        m6.add(mi22);
        mb.add(m6);
        f.setMenuBar(mb);

    }

    public void addFrame() {
        Panel p2 = new Panel();
        p2.setBackground(Color.BLACK);
        f.add(BorderLayout.CENTER, p2);
    }

    public void perfilNuevo() {
        Frame f1 = new Frame("Perfil nuevo");
        Panel p1 = new Panel(new GridLayout(2, 2, 15, 15));
        Panel p2 = new Panel(new FlowLayout(FlowLayout.RIGHT));
        Button b1 = new Button("Cancelar");
        Button b2 = new Button("Crear");
        Label l1 = new Label("Nombre del Perfil:");
        Label l2 = new Label("Basado en:");
        Choice ch = new Choice();
        ch.add("Default");
        TextField tf = new TextField();
        p1.add(l1);
        p1.add(tf);
        p1.add(l2);
        p1.add(ch);
        p2.add(b1);
        p2.add(b2);
        f1.add(BorderLayout.CENTER, p1);
        f1.add(BorderLayout.SOUTH, p2);
        f1.setSize(250, 120);
        f1.setLocation(300, 200);
        f1.setResizable(false);
        f1.setVisible(true);
    }

    public void establecerTitulo() {
        Frame f1 = new Frame("Establecer título");
        Panel p1 = new Panel(new FlowLayout(FlowLayout.CENTER));
        Panel p2 = new Panel(new FlowLayout(FlowLayout.RIGHT));
        Label l1 = new Label("Título:");
        TextField tf = new TextField(22);
        Button b1 = new Button("Cancelar");
        Button b2 = new Button("Aceptar");
        p1.add(l1);
        p1.add(tf);
        p2.add(b1);
        p2.add(b2);
        f1.add(BorderLayout.CENTER, p1);
        f1.add(BorderLayout.SOUTH, p2);
        f1.setSize(250, 100);
        f1.setLocation(300, 200);
        f1.setResizable(false);
        f1.setVisible(true);
    }

    public void buscar() {
        Frame f1 = new Frame("Buscar");
        Panel p1 = new Panel(new FlowLayout(FlowLayout.LEFT));
        Panel p2 = new Panel(new GridLayout(5, 1));
        Panel p3 = new Panel(new FlowLayout(FlowLayout.RIGHT));
        Label l1 = new Label("Buscar:");
        TextField tf = new TextField(40);
        Button b1 = new Button("Cerrar");
        Button b2 = new Button("Buscar");
        p1.add(l1);
        p1.add(tf);
        p2.add(new Checkbox("Concidir con capitalizacion", false));
        p2.add(new Checkbox("Concidir solo con la palabra entera", false));
        p2.add(new Checkbox("Concidir con expresion regular", false));
        p2.add(new Checkbox("Buscar hacia atras", true));
        p2.add(new Checkbox("Volver al principio", true));
        p3.add(b1);
        p3.add(b2);
        f1.add(BorderLayout.NORTH, p1);
        f1.add(BorderLayout.CENTER, p2);
        f1.add(BorderLayout.SOUTH, p3);
        f1.setSize(405, 250);
        f1.setLocation(300, 200);
        f1.setResizable(false);
        f1.setVisible(true);
    }

    public void perfiles() {
        Frame f1 = new Frame("Perfiles");
        Panel p1 = new Panel(new CardLayout(10, 10));
        Panel p2 = new Panel();
        Panel p3 = new Panel(new GridLayout(2, 1));
        Panel p4 = new Panel(new FlowLayout(FlowLayout.LEFT));
        Panel p5 = new Panel();
        Panel p6 = new Panel(new FlowLayout(FlowLayout.LEFT));
        Panel p7 = new Panel(new FlowLayout(FlowLayout.RIGHT));
        List l = new List(3);
        l.add("Default");
        Button b1 = new Button("Nuevo");
        Button b2 = new Button("Cerrar");
        Button b3 = new Button("Cerrar");
        Button b4 = new Button("Ayuda");
        Button b5 = new Button("Cerrar");
        Label l1 = new Label("Perfil utilizado al lanzar una terminal nueva:");
        Choice ch = new Choice();
        ch.add("Default");
        p1.add(l);
        p2.add(b1);
        p3.add(p4);
        p3.add(p5);
        p4.add(l1);
        p4.add(ch);
        p5.add(p6);
        p5.add(p7);
        p6.add(b4);
        p7.add(b5);
        f1.add(BorderLayout.CENTER, p1);
        f1.add(BorderLayout.EAST, p2);
        f1.add(BorderLayout.SOUTH, p3);
        f1.setSize(380, 250);
        f1.setLocation(300, 200);
        f1.setResizable(false);
        f1.setVisible(true);

    }

    public static void main(String[] args) {
        new Terminal();
    }

    public void actionPerformed(ActionEvent e) {
        if (e.getActionCommand().equals("Perfil nuevo...")) {
            perfilNuevo();
        } else {
            if (e.getActionCommand().equals("Establecer titulo...")) {
                establecerTitulo();
            } else {
                if (e.getActionCommand().equals("Buscar")) {
                    buscar();
                } else {
                    if (e.getActionCommand().equals("Perfiles...")) {
                        perfiles();
                    }
                }
            }
        }
    }
}
